FIG. 1 shows a storage subsystem 13, in accordance with the prior art. The storage subsystem 13 is used to store data received from servers, such as the servers 10, 11, 12 in FIG. 1, over a storage area network (SAN) 14. Applications 101, such as a relational database management system (RDBMS), run on a server, such as the server 10. The applications 101 issue write and read commands to the storage subsystem 13 via the SAN 14. The storage subsystem 13 receives the commands and processes them accordingly, in order to store and retrieve data.
The storage subsystem 13 has a number of virtual disks 132a-132d, which are also referred to as “volumes,” and which each server directly addresses when the server sends its read and write commands to the storage subsystem 13. The servers treat the virtual disks as physical storage locations. However, in actuality, each virtual disk is mapped, using a virtualization table 133, to physical storage locations on physical storage media 134a-134e. Virtual storage locations in a particular virtual disk are normally mapped to physical storage locations that are spread out over several different physical media devices 134a-134e, such as hard disk drives.
An operating system 102 on each server initially requests the storage subsystem 13 for some storage locations to which the server can address its later-issued read and write commands. The storage subsystem 13 then assigns certain virtual disks (i.e., volumes), or certain portions of virtual disks, to each server whose operating system makes such an assignment request.
A known optimization in this technology field is referred to as thin provisioning. Thin provisioning involves accommodating the situation where the operating system of each server requests more storage space than it really needs. In thin provisioning, when a server administrator makes a request for more storage, either a request for a new volume or a request for an existing volume to be expanded, the storage administrator configures the storage subsystem to use thin provisioning to allocate a new volume or expand it. If the request is for a new volume, then the operating system is provided with the new addresses of the new virtual disk that has been newly assigned to that server. However, although a new virtual disk has been assigned to the server, the server has not actually been allocated more disk space, because physical storage space on the physical storage units 134a-134e has not yet been allocated to the new virtual disk. The new virtual disk is not actually allocated any physical storage until an actual write command is received from the server.
Thin provisioning, therefore, solves the problem of a server being promised more physical storage locations than the server actually makes use of, such that storage locations are not available for other servers to use.